<!DOCTYPE html>
<html>
  <head>
    <meta content="text/html; charset=UTF-8" http-equiv="content-type">
    <title>ch00-02</title>
    
<link href="css/style.css" rel="stylesheet" type="text/css" />
<link rel="stylesheet" href="thumbnailviewer.css" type="text/css" />

<script src="thumbnailviewer.js" type="text/javascript">

/***********************************************
* Image Thumbnail Viewer Script- © Dynamic Drive (www.dynamicdrive.com)
* This notice must stay intact for legal use.
* Visit http://www.dynamicdrive.com/ for full source code
***********************************************/

</script>


  </head>
  
  
<div class="os1">关于学习和实践</div>
<p>
知识是死的，如何学会运用知识解决问题才是能力。所以希望读者学东西不要学死了，尽信书不如无书，
时代在变化，知识在更新，不能固定在旧知识点上。
</p>

<p>
<font color=red><b>要学会学习新知识，动脑分析问题，动手解决问题，
这是忠告，希望读者牢记。</b>
</font>
</p>

<p>
新手常犯的毛病就是一遇到问题就说“我不会”，懒得想如何动脑动手解决问题，到处瞎问，这么混是没法锻炼能力的。
不可能所有东西都是现成的，等着你来抄。遇到事情要先想想有没有可能的方法去尝试，而不是傻等别人来解决。
一定要锻炼独立运用知识解决问题的能力，否则永远只是个混混。
</p>

<p>
遇到编程问题，常见的解决方法这里罗列一下，以供借鉴：<br />
<ul>
<li><b>查阅帮助文档，测试可能的类或函数：</b><br />
比如要改变一个控件的前景/背景颜色，如果不知道用什么函数，那可以去打开帮助文档（Qt Assistant工具可以查阅 Qt 文档），找到该控件对应的类文档，搜索关键词，比如颜色对应的单词是 color，前景是 foreground，背景是 background，如果这些词都查不到，那么是不是有别的单词呢，比如皮肤风格 skin、style 之类的，试一试总会有收获的，起码能多学几个函数。这种代码尝试是零成本的，编错了电脑也不会爆炸，没什么好害怕的，
学习就是不断地尝试，然后找到一条正确的道路。如果大多数情况下都能进行尝试并找到正确的路，那就形成能力了。 
</li><br />

<li><b>常备几本教材、参考书，积攒示例代码：</b><br />
Qt 的书虽然不多，但还有几本的，买几本备用，通过回顾知识点、示例代码是可以温故而知新的，
不要看一遍就扔，书上知识一般都比较多，除非是过目不忘，否则都应该常翻阅温习的好。
书上和网上的例子代码要形成分类保存的习惯，示例代码积攒多了就是财富，
以后遇到问题都可能用得到。
</li><br />

<li><b>利用搜索引擎查找可能的在线文档、博客、维基、帖子等：</b><br />
通常初学者遇到的问题，别人学习时也会有类似的问题，他们很可能早几年就问过了，过了几年通常都会解决了，
可能有相关的帖子、博客、文档之类的，这时候一定不要懒，去网上多搜搜，关键词不要限于中文，
往往英文单词检索可能更有效，因为类名、函数名都是英文的。除了百度，还有必应、谷歌等，
学会用搜索引擎查找解决方案也是可行的。
</li><br />

<li><b>去专业的论坛、社区咨询前辈：</b><br />
Qt 在国内有 QTCN 开发网论坛：
<a href="http://www.qtcn.org/bbs/" target="new">
http://www.qtcn.org/bbs/ </a>，还可以去 Qt 官网社区论坛：
<a href="http://qt-project.org/forums" target="new">
http://qt-project.org/forums </a> ，再不行百度贴吧还有 Qt 吧。
这些社区论坛也是学习的好去处，但提问也是一门智慧，必须把问题讲清楚：<br />
①讲清楚开发环境，操作系统是什么，Qt库版本是什么，用什么工具做开发的等等。<br />
②把项目代码打包完整，放到附件或网盘共享里，让别人可以得到完整代码帮你调试修改，
不要随便贴两句代码就说出错，瞎嚷嚷半天，那解决不了任何问题。<br />
③讲清楚你想要实现什么东西，有些初学者不懂类或函数，会盯着代码死胡同折腾好几天，
实际上很可能有别的简单方法实现。<b>所以初学者提问时不要执着于错误代码，而是要讲清楚目标。</b>
重要的是实现目标，而不是纠结于错误的代码。世界上错误的路太多，你应该先寻找一条正确的路。<br />
④尊重论坛前辈，可能他暂时也不知道怎么弄，别人帮你回个贴可能有不好使的的代码，
这时候没必要怪别人不懂，因为你自己也不懂才来问的，不要五十步笑百步。

</li><br />

<li><b>学习 Qt 库的源代码：</b><br />
有些问题可能死活找不到相关的解决方法，问别人，别人也不知道。那还有一种靠谱的方法，
就是查看 Qt 类库的源代码。所有代码都是人写出来的，别人能写出来，你也能学会看懂源码。
必要的时候就修改类库的源码或者继承新类自己尝试解决问题。这是开源软件学习的升华过程，
开源软件的好处就是你能得到源代码，并且可以自己修改，升华到这层次就可以算神功大成了，
那是真正的学会了。别人是人，你也是人，别人能做到，你也是可以的。不要片面迷信大神，
因为通过努力你也可以当大神，一定不要拘束自己的潜力！
</li><br />
</ul>
</p>


<div class="practice">

<table>
<tbody>
<tr>
    <td><img src="images/pics/practice.png" alt="tip" /></td>
    <td>  <b>练习</b>  </td>
</tr>
</tbody>
</table>

最后说明一下本教程章节里的练习实践，学习编程绝对不能懒，
一定要动手敲键盘输入代码或者用笔抄写代码，这样加深印象。
用 CV 大法（Ctrl+C 和 Ctrl+V）是学不到知识的，必须亲自动手才行。
因为不可能所有知识点都讲，而且知识点也会更新变化，重要的是锻炼学习能力。
本教程章节末尾专门留了动脑动手的练习，这些练习里面通常也是很重要的知识点，
<b>
希望读者自己动手去摸索学习，最好全部的练习都动手操练一遍。
不动脑不动手那是你自己的损失，自欺欺人不如不学。<br />
最后是关于练习的一点提示：独立解决，方法不限，结果不限，只要能找到一条正确的路实现目标即可。
</b>

</div>




<br />

<table style="text-align: left; width: 100%;" border="0" cellpadding="2" cellspacing="2">
	<tbody>
	<tr>
		<td style="width: 40%;"><div style="text-align: center;"><a href="ch00-01.htm"><img class="pic" style="width: 32px; height: 32px;" alt="prev" src="images/pics/prev.png" /></a></div></td>
		<td style="width: 20%;"><div style="text-align: center;"><a href="contents.htm"><img class="pic" style="width: 32px; height: 32px;" alt="contents" src="images/pics/contents.png" /></a></div></td>
		<td style="width: 40%;"><div style="text-align: center;"><a href="ch01-00.htm"><img class="pic" style="width: 32px; height: 32px;" alt="next" src="images/pics/next.png" /></a></div></td>
	</tr>
</tbody>
</table>

</html>
